const express = require("express")
const cors = require("cors")
const { sequelize } = require("./models")

const app = express()

// 中间件
app.use(cors()) //允许跨域请求(本项目前端允许在3000端口,后端运行在8090端口)
app.use(express.json()) //解析ｊｓｏｎ请求体（将ｊｓｏｎ字符串转化为ｊｓ对象）
app.use(express.urlencoded({ extended: true })) //解析表单格式的数据（将表单格式转化为ｊｓ对象）

// 路由
app.use("/api/v1/building", require("./routes/building"))
app.use("/api/v1/unit", require("./routes/unit"))
app.use("/api/v1/household", require("./routes/household"))
app.use("/api/v1/marker", require("./routes/marker"))
app.use("/api/v1/staff", require("./routes/staff"))

// 数据库同步
async function initDatabase() {
  try {
    // 使用 alter: true 只更新表结构，不删除数据
    await sequelize.sync({ alter: true })
    console.log("数据库同步完成")
  } catch (err) {
    console.error("数据库同步失败:", err)
  }
}

// 初始化数据库
initDatabase()

const PORT = process.env.PORT || 8090
app.listen(PORT, () => {
  console.log(`服务器运行在端口 ${PORT}`)
})
